// Licensed to Elasticsearch B.V under one or more agreements.
// Elasticsearch B.V licenses this file to you under the Apache 2.0 License.
// See the LICENSE file in the project root for more information.
//
// ███╗   ██╗ ██████╗ ████████╗██╗ ██████╗███████╗
// ████╗  ██║██╔═══██╗╚══██╔══╝██║██╔════╝██╔════╝
// ██╔██╗ ██║██║   ██║   ██║   ██║██║     █████╗
// ██║╚██╗██║██║   ██║   ██║   ██║██║     ██╔══╝
// ██║ ╚████║╚██████╔╝   ██║   ██║╚██████╗███████╗
// ╚═╝  ╚═══╝ ╚═════╝    ╚═╝   ╚═╝ ╚═════╝╚══════╝
// ------------------------------------------------
//
// This file is automatically generated.
// Please do not edit these files manually.
//
// ------------------------------------------------

#nullable restore

using Elastic.Clients.Elasticsearch.Serverless.Fluent;
using Elastic.Clients.Elasticsearch.Serverless.Serialization;
using Elastic.Transport.Products.Elasticsearch;
using System;
using System.Collections.Generic;
using System.Text.Json.Serialization;

namespace Elastic.Clients.Elasticsearch.Serverless.Eql;

public sealed partial class GetEqlStatusResponse : ElasticsearchResponse
{
	/// <summary>
	/// <para>For a completed search shows the http status code of the completed search.</para>
	/// </summary>
	[JsonInclude, JsonPropertyName("completion_status")]
	public int? CompletionStatus { get; init; }

	/// <summary>
	/// <para>Shows a timestamp when the eql search will be expired, in milliseconds since the Unix epoch. When this time is reached, the search and its results are deleted, even if the search is still ongoing.</para>
	/// </summary>
	[JsonInclude, JsonPropertyName("expiration_time_in_millis")]
	public long? ExpirationTimeInMillis { get; init; }

	/// <summary>
	/// <para>Identifier for the search.</para>
	/// </summary>
	[JsonInclude, JsonPropertyName("id")]
	public string Id { get; init; }

	/// <summary>
	/// <para>If true, the search request is still executing. If false, the search is completed.</para>
	/// </summary>
	[JsonInclude, JsonPropertyName("is_partial")]
	public bool IsPartial { get; init; }

	/// <summary>
	/// <para>If true, the response does not contain complete search results. This could be because either the search is still running (is_running status is false), or because it is already completed (is_running status is true) and results are partial due to failures or timeouts.</para>
	/// </summary>
	[JsonInclude, JsonPropertyName("is_running")]
	public bool IsRunning { get; init; }

	/// <summary>
	/// <para>For a running search shows a timestamp when the eql search started, in milliseconds since the Unix epoch.</para>
	/// </summary>
	[JsonInclude, JsonPropertyName("start_time_in_millis")]
	public long? StartTimeInMillis { get; init; }
}